A wireless sensor network typically is a network of spatially distributed sensors, which are used to monitor physical or environmental conditions, such as temperature or pressure. Sensors cooperate to transmit data they collect through the network, typically to a main, collector location. Sensor networks can be bi-directional. They are typically used in industrial or consumer applications.
Multi-hop wireless network protocols are especially popular in sensor networks which are required to cover large areas. To minimize costs and maintenance efforts, the sensor nodes shall typically have limited resources and operate for extended periods of time on the initial set of batteries. In this case, battery consumption is a limiting factor. A known solution for reducing energy consumption is to rely on Time-Division Multiple Access (TDMA) protocols.
A wireless sensor network using TDMA is usually modelled as a tree of nodes (the latter representing the sensors). Typically, each individual node knows only its direct child nodes and parent nodes. The full tree is only available to and managed by the root node. To minimize protocol complexity and resource utilization, inner nodes lack the full information about the tree. To avoid collisions and to save energy, nodes communicate only with their (first neighbor) parent and child nodes, at designated times. Namely, designated time slots are agreed, during which the nodes switch on their radio chips to either receive or send a message. Outside of such time slots, the nodes sleep or minimize their activities as much as possible, in order to save power.
Each node is assigned an additional time slot, during which it listens to messages from any node, especially for association requests sent by nodes attempting to join the network. The association request is forwarded to the root node which schedules the distribution of time slots. If accepted, an association response with timing and slots information is sent down the tree to the parent node of the joining node. The parent forwards the response on the shared slot to the child node, the latter then becoming part of the tree and aware of all of its assigned time slots.
As the system lacks global time and local clocks drift among the nodes, the clock between parent and child nodes is synchronized using beacon messages. Beacon messages can contain state information such as a list of known child nodes, and are also sent during a time slot assigned by the central root node. When a node sends data to the root node up the tree, it sends a packet to his parent in the assigned slot. The parent buffers the packet and sends it later further up during the time slot allocated to him and his parent. Similarly, packets can travel from the root node to inner nodes in the tree.
When a node does not receive a parent beacon for some time, it assumes the parent node to be lost and therefore tries to re-associate with the network. Similarly, a parent node might assume a child node to be lost when the parent does not receive any message for some time. The parent node will then notify the loss to the root, to update the latter as to the network state.